package com.vogue.supplymall.shop.domain.model;

import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * The type Product.
 * 商品Entity
 */
@Entity
@Table(name = "product")
public class Product extends TendBaseEntity implements Serializable{

    /**
	 * 
	 */
	private static final long serialVersionUID = 5749029673142681999L;
	/**
     * 商品图片路径
     */
    @Transient
    private List<ProductImg> productImgs;
    /**
     * 商品价格
     */
    @Transient
    private List<ProductPrice> productPrices;
    /**
     * 商品属性分类
     */
    @Transient
    private List<ProductAttrtype> productAttrtypes;
    /**
     * 商品与分类对应关系
     */
    @Transient
    private List<RelProductCategory> relProductCategories;
    /**
     * 商品属性分类的值
     */
    @Transient
    private List<ProductAttrvalue> productAttrvalues;
    /**
     * 属性组合方案
     */
    @Transient
    private List<ProductAttrplan> productAttrplans;

    /**
     * 商品组合方案明细
     */
    @Transient
    private List<ProductAttrplanDetail> productAttrplanDetails;
    /**
     * 商品与买家私定的销售关联关系
     */
    @Transient
    private List<RelProductCode> relProductCodes;

    /**
     * 系统唯一号id
     */
    private Long syscodeid;

    /**
     * 所属店铺id
     */
    private Long shopid;

    /**
     * 上级商品id
     */
    private Long pid;

    /**
     * 商品名称
     */
    private String name;

    /**
     * 商品编号
     */
    private String code;

    /**
     * 商品简介
     */
    private String detailinfo;

    /**
     * 标签
     */
    private String itemlabel;

    /**
     * 是否是主规格
     */
    private Boolean mainlyflag;

    /**
     * 对应的供应链系统中的品项id
     */
    private String matchid;

    /**
     * 禁用标志
     */
    private Boolean disabledflag;

    /**
     * 隐藏标志
     */
    private Boolean hiddenflag;

    /**
     * 配送级别（1：全国 2：全区域 4：全省 8：全市）
     */
    private Integer sendlvl;
    /**
     * 运费起送件数（单位件）
     * @return
     */
    private BigDecimal freight;
    /**
     * 满计件运费（单位元）
     * @return
     */
    private BigDecimal freightamount;
    /**
     * 运费起送件数计费步长（单位件）
     * @return
     */
    private BigDecimal freightstep;
    /**
     * 运费起送件数计费步长金额（单位元）
     * @return
     */
    private BigDecimal freightstepamount;
    /**
     * 运费类型
     * @return
     */
    private int freighttype;
    

    public List<ProductImg> getProductImgs() {
        return productImgs;
    }

    public void setProductImgs(List<ProductImg> productImgs) {
        this.productImgs = productImgs;
    }

    public List<ProductPrice> getProductPrices() {
        return productPrices;
    }

    public void setProductPrices(List<ProductPrice> productPrices) {
        this.productPrices = productPrices;
    }

    public List<ProductAttrtype> getProductAttrtypes() {
        return productAttrtypes;
    }

    public void setProductAttrtypes(List<ProductAttrtype> productAttrtypes) {
        this.productAttrtypes = productAttrtypes;
    }

    public List<RelProductCategory> getRelProductCategories() {
        return relProductCategories;
    }

    public void setRelProductCategories(List<RelProductCategory> relProductCategories) {
        this.relProductCategories = relProductCategories;
    }

    public List<ProductAttrvalue> getProductAttrvalues() {
        return productAttrvalues;
    }

    public void setProductAttrvalues(List<ProductAttrvalue> productAttrvalues) {
        this.productAttrvalues = productAttrvalues;
    }

    public List<ProductAttrplan> getProductAttrplans() {
        return productAttrplans;
    }

    public void setProductAttrplans(List<ProductAttrplan> productAttrplans) {
        this.productAttrplans = productAttrplans;
    }

    public List<ProductAttrplanDetail> getProductAttrplanDetails() {
        return productAttrplanDetails;
    }

    public void setProductAttrplanDetails(List<ProductAttrplanDetail> productAttrplanDetails) {
        this.productAttrplanDetails = productAttrplanDetails;
    }

    public List<RelProductCode> getRelProductCodes() {
        return relProductCodes;
    }

    public void setRelProductCodes(List<RelProductCode> relProductCodes) {
        this.relProductCodes = relProductCodes;
    }

    public Long getSyscodeid() {
        return syscodeid;
    }

    public void setSyscodeid(Long syscodeid) {
        this.syscodeid = syscodeid;
    }

    public Long getShopid() {
        return shopid;
    }

    public void setShopid(Long shopid) {
        this.shopid = shopid;
    }

    public Long getPid() {
        return pid;
    }

    public void setPid(Long pid) {
        this.pid = pid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getDetailinfo() {
        return detailinfo;
    }

    public void setDetailinfo(String detailinfo) {
        this.detailinfo = detailinfo;
    }

    public String getItemlabel() {
        return itemlabel;
    }

    public void setItemlabel(String itemlabel) {
        this.itemlabel = itemlabel;
    }

    public Boolean getMainlyflag() {
        return mainlyflag;
    }

    public void setMainlyflag(Boolean mainlyflag) {
        this.mainlyflag = mainlyflag;
    }

    public String getMatchid() {
        return matchid;
    }

    public void setMatchid(String matchid) {
        this.matchid = matchid;
    }

    public Boolean getDisabledflag() {
        return disabledflag;
    }

    public void setDisabledflag(Boolean disabledflag) {
        this.disabledflag = disabledflag;
    }

    public Boolean getHiddenflag() {
        return hiddenflag;
    }

    public void setHiddenflag(Boolean hiddenflag) {
        this.hiddenflag = hiddenflag;
    }

    public Integer getSendlvl() {
        return sendlvl;
    }

    public void setSendlvl(Integer sendlvl) {
        this.sendlvl = sendlvl;
    }

	public BigDecimal getFreight() {
		return freight;
	}

	public void setFreight(BigDecimal freight) {
		this.freight = freight;
	}

	public BigDecimal getFreightamount() {
		return freightamount;
	}

	public void setFreightamount(BigDecimal freightamount) {
		this.freightamount = freightamount;
	}

	public BigDecimal getFreightstep() {
		return freightstep;
	}

	public void setFreightstep(BigDecimal freightstep) {
		this.freightstep = freightstep;
	}

	public BigDecimal getFreightstepamount() {
		return freightstepamount;
	}

	public void setFreightstepamount(BigDecimal freightstepamount) {
		this.freightstepamount = freightstepamount;
	}

	public int getFreighttype() {
		return freighttype;
	}

	public void setFreighttype(int freighttype) {
		this.freighttype = freighttype;
	}
    
}